Synchronizing client and server data is typically known in the art. SyncML is a protocol that defines a common data synchronization protocol that can be used industry-wide. Client and server devices exchange information with each other regarding changes to documents and other files stored at their respective locations. Anchors are used to inform the receiving client or server of the time the last update was received from the sending client or server. These anchors are sometimes missing or corrupt.
In the SyncML and other synchronization protocols, devices being synchronized with each other for the first time, or whose anchors are missing or corrupt, require a full document-by-document, field-by-field synchronization. This field-by-field sync is known as a slow sync. The slow sync can be desired for many reasons. For example, the client or the server has lost its change log information or the sync anchors may be mismatched.
Slow sync is a two-way synchronization process. During a slow sync, a client device must send all of the documents in its database to the server. The server then compares all of the documents received from the client with the documents the server has stored. After performing a sync analysis, the server returns all needed modifications to the client. Doing a field-by-field analysis during a slow sync can be very inefficient because large amounts of unnecessary data for each document may be exchanged.
Other limitations and problems also exist.